Non-volatile memory design based on integrated circuit technology represents an expanding field. Non-volatile memory devices are generally configured as storage systems or devices that do not lose data when power is removed from the storage system or device. Several types of non-volatile memory devices are currently utilized in computers and other data-processing devices. The most commonly utilized non-volatile memory devices fall into three primary categories: EPROM, EEPROM and Flash memory.
The first type of commonly utilized non-volatile memory is Erasable Programmable Read-Only Memory (EPROM). EPROM is a type of non-volatile memory that can be reprogrammed after it is manufactured. EPROMS can generally be reprogrammed by removing the protective cover from the top of the EPROM computer chip and exposing the chip to ultraviolet light. EPROM is more than 20 years old and is popular for program storage because EPROM is inexpensive, is non-volatile, and allows code updates using an EPROM programmer system.
The second type of commonly utilized non-volatile memory device is the Electronically Erasable Programmable Read-Only Memory (EEPROM) class of memory devices. EEPROM devices are non-volatile memory devices that can be erased and programmed utilizing electrical signals. A typical EEPROM device includes several thousand-memory cells organized in an array. In general, a memory cell can includes a floating gate transistor and a select transistor.
This configuration is referred to as a two-transistor EEPROM cell. The select transistor in an EEPROM device is used to select memory cells that are to be erased or programmed. A selected memory cell refers to a memory cell that is either being programmed, erased, or read. On the other hand, unselected memory cells are the memory cells of the array that are not selected for programming, erasing, or reading. The floating gate transistors in the device are those transistors that store the digital data in each memory cell. The digital data can be stored as eight bit words called bytes. Each byte may be individually programmed and erased.
The third type of non-volatile memory that is generally used is Flash memory. Flash memory is another popular form of non-volatile memory utilized in computers and other electronic devices. The terminology “flash” comes from the ability to simultaneously electrically erase an entire memory array or a large portion of the memory array in a flash. Flash memory is similar to EEPROM memory in function but must be erased in blocks, whereas EPROM can be erased one byte at a time. Flash EPROM (erasable programmable read-only memory) devices, in particular, have developed into a popular source of non-volatile, electrically erasable memory in a wide range of digital applications. Flash memory devices typically use a one-transistor memory cell, which permits high memory densities, high reliability, and low power consumption. These characteristics have made flash memory very popular for low power applications, such as battery-backed or embedded memory circuits.
Common uses of non-volatile memory include portable computers, personal digital assistant (PDA) devices, digital cameras, and cellular telephones. In these devices, both program code and system data, such as configuration parameters and other firmware, are often stored in flash memory because of the compact storage and relative ease of software upgradeability. The use of flash memory, for example, to store upgradeable data has necessitated the development of mechanisms to protect the data from unintended erasure or reprogramming.
Memory arrays for use in non-volatile memory devices can be configured such that their memory cells are generally arranged in rows and columns. Typically, the gates of the transistors within the same row are connected to each other and to a common word line. Similarly, the drain electrodes of the transistors within the same column can be connected to each other and to a common bit line. In addition, the source electrodes of the transistors may be connected to each other via a common source line. To program a selected memory cell in a selected row and a selected column, a programming voltage can be applied to both the word line and the bit line which may be connected to the selected memory cell.
Memory arrays utilized to form EEPROM, EPROM, or Flash memory cells can use redundant memory elements (i.e., cells and accompanying word lines and bit lines organized as rows and columns) to compensate for production errors. Specifically, after the production of a complete memory array, a post-production test in the memory array can be generally performed. This post-production testing may indicate that a particular column, row or cell of the memory array is defective. A redundant memory element can then be substituted for the defective element. This substitution typically occurs after the entire memory array has been manufactured. By allowing a defective memory element to be replaced by a redundant element after production, the memory array can still be used.
Non-volatile memory can be utilized to store information necessary to repair defective rows and/or columns of memory arrays. The portion of the memory array that is utilized to store this repairing information can be referred to as the “information array.” The repairing information is generally obtained to a volatile latch array after the associated computer system is powered-up. In order to save area or reduce associated circuit complexity, the information array can be placed together with the main array, such that both of these arrays share the same general “periphery circuit” and “bit lines.” The repairing information, however, cannot be read-out correctly if the corresponding bit lines are defective. In other words, defective rows or columns cannot be repaired if a defective columns itself is relied upon to read-out the information array. Thus, the repairing efficiency in such configurations is quite low.
Based on the foregoing, the present inventor has come to the conclusion that a need exists for methods and systems, which would result in a dramatic increase in the repairing efficiency of rows and columns in non-volatile memory arrays. The present inventor, in particular, has concluded that the utilization of an Error Correction Coding (ECC) scheme can assist in improving this repairing efficiency.